iT邦幫忙

2021 iThome 鐵人賽

DAY 5
1

MLOps除了ML之外,另一部分則是DevOps(develop operations)。事實上,技術的運作(operation)與商業的運作是密不可分的。其中一個最常見的問題,便是在導入ML專案的時候,好不容易找來了各方的專家,在合作時因為彼此的背景、角色不同,而導致需要非常大量的溝通成本。例如資料科學家、DevOps、領域專家,大家在談論dashboard的時候,心裡想的分別是:模型的準確度、系統的穩健度、模型與使用者消費的關聯程度。資料科學家可以解釋資料跟模型,但可能沒有管理業務運營的背景。 同樣,業務團隊或領域專家則可以評論怎麼樣的資料反應市場狀況,但他們不會知道這些資料點在ML模型下的意義是什麼。

MLOps的存在,幫助了大家在商業及技術上有一個共同的目標,且在這個目標下建立的平台,讓專案開發更穩固、大家能夠去了解對方眼中對這個專案在乎的事情是什麼。我們一起來看看在流程上,MLOps可以如何協助團隊更順暢的合作:

1. 高效率:自動化開發與更新

一方面基於ML 團隊的成員背景大多不是與資訊有關,可能是邊做邊學。一方面基於ML專案在前期需要大量的實驗,開發人員多為獨立作業,過程也不少人工設定的參數夾雜在程式碼裡面,兩者加乘下,也因此ML專案累積的技術債也是出名的難維護。如果新增一張資料表,或者更迭一次實驗參數,要回溯到上個版本,可能都是很困難的。同樣的,若是另一個同事接手維護,通常也要花不少時間重新梳理前人留下的程式碼。

MLOps的出現,迫使資料科學家們必須開始思考如何更好地維護他們所開發的程式碼。讓原本只是在實驗環境(如jupyter notebook)需透過運行的程式碼,變成可以被其他程式自動執行的程式碼。Pipeline的出現,使得人工干預的部分減少了,盡量讓系統去執行程式,相對的在管理上也相對能夠被管控。

衡量指標:(1)各資料來源是否能自動化倒入資料收集的管線(pipeline)。(2)模型的建立與訓練,參數是否都有從程式碼當中提取出來,讓外部的系統可以執行這些訓練程式碼。(3)從專案的導入之後,是否有加速實現價值,加速模型迭代的時間,從幾個月縮短到幾小時能夠完成一次的訓練到部署的循環。

2. 高透明度:助於跨部門、團隊協作

除了第一點所提到的,資料科學家彼此的合作之外。MLOps的實作過程也強調各項日誌(Log)的重要性。這些日誌資料包含(1)資料科學相關數據。包括程式碼、版本、參數、實驗時使用的資源、運算時間、錯誤或故障報告等等,從收集資料開始到模型上線的整個生命週期都建立了可視性、可重複性和再現性。(2)使用者相關數據。顧客使用ML功能的相關行為監測與紀錄。例如呼叫模型的回應時間、送出去的資料以及得到的預測結果、使用者是否有針對ML模型推論的結果有正向的行為記錄等等。讓單一使用者體驗能夠被量化,讓群體的使用者行為紀錄可以回到系統,用來協助下一次模型運算試驗。

其中(1)的資料大多是ML團隊和DevOps使用及溝通。(2)的資料則是ML團隊和領域專家用來溝通的素材。這些數據讓各團隊們不再只是埋首工作,也同時能夠理解其他人所在乎的數據指標。讓每一次的迭代都是經由資料的回饋觸發。

衡量指標:(1)各團隊的指標是否都能夠以某種方式展現在相關聯的報表上,如果有,其他合作的單位是否也能夠理解當中報表的意涵。(2)倘若報表上有異常,是否各團隊都有可以相對應的處理方式?

3. 高適應性:提高系統彈性、消除浪費

當模型的開發與部屬都模組化,且有了相對應的報表能夠觀測這些開發過程、系統使用相關的數據。這讓管理團隊能夠很快地掌握,當前的資源是否有被濫用、或是因為使用者大量湧入而需要增加使用的機器等等。這些都讓公司在這個產品上相關的策略可以有更大的彈性,同時也因為根據需求隨時調整,也消除了不必要的浪費。

衡量指標:(1)ML模型訓練過程,是否都有很好地利用CPU/GPU/TPU以及Memory,有沒有哪些地方還可以被優化(2)放置ML模型服務的機器,是否健康的回應使用者需求(3)假若目前的使用者數量湧進10倍、100倍的狀況,系統會怎麼樣調整?

4. 聚焦ML情境:在軟體開發的核心概念上支援ML模型

我們在3面向談ML產品與軟體產品的相異處提到ML專案與一般軟體開發專案的不同點。其中也包含用於開發它們的所需材料不同、構建過程不同、開發與執行的行為也不同。因此在MLOps的實作上,我們也要時時刻刻記得:當挪用DevOps的相關概念到專案上的時候,資料科學家跟資料工程師們是否都還能維持順暢的開發流程。

這個想法會讓ML專案同時能具有DevOps在系統更迭的穩定與快速。相對過去,MLOps也能夠相對快速的與市場互動。基於我們前面提到的,自動化,可回溯的特性上。也因為我們導入系統監測,讓資料、模型、使用者的數據能夠及時被看見,當模型或者資料漂移時,能夠進行下一次的開發。

衡量指標:(1)資料、模型、程式碼是否都進入版本控制(2)假若平台上需要不同角色的權限設定,是否有系統化的設置好(3)系統監測與使用者日誌,是否有針對ML的使用情境做調整,紀錄相對應的資料在資料庫裡?

5. 高信任度:因專案的準確性、可解釋性帶來信任和影響力

ML專案在推送到產品化的過程當中,最被商業夥伴們覺得無法信任的原因,就是不知道這個決策是依據什麼而來的。舉例來說,法務與金融業,每個決策都需要有資料佐證,不能直接用"模型說是這樣"就直接拒絕某一個人的貸款申請或直接判定某人的罪行。

MLOps落地的過程當中,可以在模型交付的過程,將ML端跟商業端的負責人放在部署模型的必要審核,迫使雙方團隊在每一次的迭代都需要反覆的溝通與討論。討論的內容從一開始資料收集的狀況、各項特徵所反映在模型的重要程度、模型上線之後如何影響使用者的行為等等。

即便大家可能在一開始還不是太清楚整個ML專案的影響力,但是隨著每一次的迭代與循環,讓整個專案的完整度能夠提升,在部屬的系統上也有相對應的安全措施確保每一次的交付都是有足夠品質的準確度跟性能。在模型上線之後的系統可靠性、SLA、安全性和合規性這些也都是能夠量化的。這些數據所累積的專案樣貌,使得這個專案能夠在公司內部、外部建立信任感,和影響力。

長久下來,公司、企業也對於模型所帶來的效益有更多的信任,願意投注資源給更多的ML專案、建立ML文化。

衡量指標:(1)ML專案是否帶入可解釋性,讓模型與特徵值之間的關係能夠更輕易的被領域專家理解(2)每一次的上線交付,是否都有可靠性、SLA、安全性和合規性的數據做依歸。

結語

今天透過這幾項細節,帶大家看看MLOps除了在團隊與技術之外,在商業與技術的流程上面的5大好處:

  1. 高效率:自動化開發與更新
  2. 高透明度:助於跨部門、團隊協作
  3. 高適應性:提高系統彈性、消除浪費
  4. 聚焦ML情境:在軟體開發的核心概念上支援ML模型
  5. 高信任度:因專案的準確性、可解釋性帶來信任和影響力

以及這5個好處相對應的指標,大家一起來看看公司內部的專案是否都有受到這些好康! :D

Reference
[1]. The state of MLOps in 2021
https://www.zdnet.com/article/the-state-of-mlops-in-2021/

[2]. How is MLOps Used in Business and Marketing?
https://neilpatel.com/blog/mlops/?lang_geo=us&

[3]. A Guide to Enterprise MLOps
https://www.dominodatalab.com/resources/a-guide-to-enterprise-mlops/

[4]. How MLOps Delivers Business Value
https://tdwi.org/articles/2020/10/20/adv-all-how-mlops-delivers-business-value.aspx?m=1

[5]. The Business Case for MLOps
https://www.thorogood.com/perspectives/whitepapers/the-business-case-for-mlops/


上一篇
為什麼87% 的資料科學專案沒辦法產品化? | MLOps落地指南 - 技術篇
下一篇
從AWS技術白皮書看MLOps解決方案
系列文
談MLOps - 模型、專案架構、產品化及維運29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
ertjona
iT邦新手 5 級 ‧ 2021-09-07 09:44:01

好文!
有個小問題:你提到一個衡量指標:(1)ML模型訓練過程,是否都有很好地利用CPU以及Memory?但我想GPU才是訓練過程中更珍貴的資源,GPU的利用率可能更要關注。
另外,這裡"我們在[]提到幾個ML專案與一般軟體開發專案的不同點"應該是忘了連到前幾天一篇了。

更新好了,感謝你用心閱讀 :)

我要留言

立即登入留言